﻿using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using LiveTiss.Classes;
using LiveTiss.Schemas;

namespace LiveTiss.Guias
{
    public partial class GuiaHonorarioIndividual : UserControl
    {
        #region Guia Honorario Individual

        public ct_guiaHonorarioIndividual Guia
        {
            get { return (ct_guiaHonorarioIndividual)GetValue(GuiaProperty); }
            set { SetValue(GuiaProperty, value); }
        }

        public static readonly DependencyProperty GuiaProperty =
            DependencyProperty.Register("Guia", typeof(ct_guiaHonorarioIndividual), typeof(GuiaHonorarioIndividual), new PropertyMetadata(null));

        #endregion

        public GuiaHonorarioIndividual()
        {
            this.DataContext = this;

            this.InitializaValues();

            InitializeComponent();
        }

        private void InitializaValues()
        {
            if (this.Guia == null)
            {
                this.Guia = new ct_guiaHonorarioIndividual()
                {
                    contratado = new ct_contratado()
                    {
                        enderecoContratado = new ct_endereco()
                        {
                            cep = string.Empty,
                            codigoIBGEMunicipio = string.Empty,
                            codigoUF = st_UF.AC,
                            complemento = string.Empty,
                            logradouro = string.Empty,
                            municipio = string.Empty,
                            numero = string.Empty,
                            tipoLogradouro = st_tipoLogradouro.Item001
                        },
                        identificacao = new ct_identificacaoPrestadorExecutante()
                        {
                            ItemElementName = ItemChoiceType.CNPJ,
                            ItemValue = string.Empty
                        },
                        nomeContratado = string.Empty,
                        numeroCNES = string.Empty
                    },
                    contratadoExecutante = new ct_guiaHonorarioIndividualContratadoExecutante()
                    {
                        enderecoContratado = new ct_endereco()
                        {
                            cep = string.Empty,
                            codigoIBGEMunicipio = string.Empty,
                            codigoUF = st_UF.AC,
                            complemento = string.Empty,
                            logradouro = string.Empty,
                            municipio = string.Empty,
                            numero = string.Empty,
                            tipoLogradouro = st_tipoLogradouro.Item001
                        },
                        identificacao = new ct_identificacaoPrestadorExecutante()
                        {
                            ItemElementName = ItemChoiceType.CNPJ,
                            ItemValue = string.Empty
                        },
                        identificacaoProfissional = new ct_profissionalExecutante()
                        {
                            codigoCBOS = st_CBOS.Item000000,
                            codigoCBOSSpecified = true,
                            conselhoProfissional = new ct_conselhoProfissional()
                            {
                                numeroConselho = string.Empty,
                                siglaConselho = st_conselhoProfissional.COREN,
                                ufConselho = st_UF.AC
                            },
                            nomeExecutante = string.Empty
                        },
                        nomeContratado = string.Empty,
                        numeroCNES = string.Empty,
                        posicaoProfissional = st_posicaoProfissao.Item00,
                        tipoAcomodacao = st_tipoAcomodacao.Item1,
                        tipoAcomodacaoSpecified = true
                    },
                    dadosBeneficiario = new ct_beneficiario()
                    {
                        identificadorBeneficiario = new byte[] { },
                        nomeBeneficiario = string.Empty,
                        nomePlano = string.Empty,
                        numeroCarteira = string.Empty,
                        numeroCNS = string.Empty,
                        validadeCarteira = Util.EmptyDate,
                        validadeCarteiraSpecified = false
                    },
                    identificacaoGuiaHonorarioIndividual = new ct_cabecalhoGuia()
                    {
                        _dataEmissaoGuia = Util.EmptyDate,
                        dataEmissaoGuia = Util.EmptyDate,
                        identificacaoFontePagadora = new ct_cabecalhoGuiaIdentificacaoFontePagadora()
                        {
                            ItemElementName = ItemChoiceType1.cnpjFontePagadora,
                            ItemValue = string.Empty
                        },
                        LogoPrestadora = new byte[] { },
                        numeroGuiaOperadora = string.Empty,
                        numeroGuiaPrestador = string.Empty
                    },
                    numeroGuiaPrincipal = string.Empty,
                    observacao = string.Empty,
                    procedimentosExamesRealizados = new ct_guiaHonorarioIndividualProcedimentosExamesRealizados() 
                    { 
                        procedimentoRealizado = new List<ct_procedimentosRealizadosProcedimentoRealizado>(),
                        totalGeralHonorario = 0,
                        totalGeralHonorarioSpecified = true
                    }
                };
            }
        }
    }
}
